home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2005 March
/
CMCD0305.ISO
/
Software
/
Shareware
/
Utilitare
/
emu
/
Emu8086_Setup_307c.exe
/
{app}
/
Samples
/
calc.asm
< prev
next >
Wrap
Assembly Source File
|
2002-11-28
|
1KB
|
87 lines
; This sample gets two numbers
; from the user, calculates the
; sum of these numbers,
; and prints it out.
#make_COM#
include 'emu8086.inc'
ORG 100h
; skip variable declaration:
JMP START
; declaration of variable:
num DW ?
START:
; get first number:
CALL PTHIS
DB 13, 10, 'Calculation Range: [-32768..32767]', 13, 10
DB 13, 10, 'Enter first number: ', 0
CALL scan_num
; keep first number:
MOV num, CX
; get second number:
CALL PTHIS
msg2 DB 13, 10, 'Enter second number: ', 0
CALL scan_num
; add numbers:
ADD num, CX
JO overflow
; print the result:
CALL PTHIS
DB 13, 10, 'The sum is: ', 0
MOV AX, num
CALL print_num
JMP exit
; process overlow error:
overflow:
PRINTN 'We have overflow!'
exit:
RET
;=================================
; here we define the functions
; from emu8086.inc
; SCAN_NUM reads a
; number from the user and stores
; it in CX register.
DEFINE_SCAN_NUM
; PRINT_NUM prints a signed
; number in AX.
; PRINT_NUM_UNS prints an unsigned
; number in AX (required by
; PRINT_NUM):
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
; PTHIS prints NULL terminated
; string defined just after
; the CALL PTHIS instruction:
DEFINE_PTHIS
;=================================
END